package com.framework.service;

import cn.dev33.satoken.util.SaResult;
import com.framework.dto.MergeFileDTO;
import com.framework.dto.PageRequestDTO;
import com.framework.entity.MergeFile;
import io.minio.errors.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.UUID;

/**
 * @Description: 合并文件服务接口
 * @Author: JamesYao
 * @DateTime: 2024/1/17 0:27
 */
public interface MergeFileService {
    void saveMergeFile(MergeFile file);
    SaResult getSumFileId(MergeFile file);
    SaResult checkFileIntegrity(MergeFile file);
    SaResult getMergeByUserIdAndPid(String pid);
    SaResult getDeleteMergeByUserIdAndPid(PageRequestDTO pageRequestDTO);
    SaResult newFolder(MergeFile file);
    SaResult deleteFileByFileId(String fileId);
    void renameMergeFile(MergeFileDTO file);
    void recoverFileByFileId(String fileId);
    void fakeDeleteFileByFileId(String fileId);
    void downloadFileByFileId(String fileId, HttpServletResponse response) throws IOException, ServerException, InsufficientDataException, ErrorResponseException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException;
}
